﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace QldtSdh.BLL
{
    using DAL;
    using CEMS_DHKH.Models;
    using DAL.Models;

    class BizDaoTaoDaiHoc
    {
        internal static List<DonViDaoTaoDaiHoc> GetListDonViDaoTaoDaiHoc(bool chiLayDonViCoGiangVien = true, CEMS_DHKhoaHocContext db = null)
        {
            try
            {
                if (db == null)
                    using (var db2 = CEMS_DHKhoaHocContext.GetContext())
                        return GetListDonViDaoTaoDaiHoc(chiLayDonViCoGiangVien, db2);
                else
                {
                    if (chiLayDonViCoGiangVien)
                        return db.DonViDaoTaoDaiHocDbSet
                            .Where(e => db.GiangVienDaoTaoDaiHocDbSet.Count(x => x.MaDonVi == e.MaDonVi) > 0)
                            .OrderBy(e => e.TenDonVi).ToList();
                    else
                        return db.DonViDaoTaoDaiHocDbSet
                        .OrderBy(e => e.TenDonVi).ToList();

                }
            }
            catch (Exception exc)
            {
                throw new Exception("Không thể lấy dữ liệu đơn vị đào tạo từ cơ sở dữ liệu đào tạo đại học", exc);
            }
        }

        internal static List<GiangVienDaoTaoDaiHoc> GetListGiangVienDaoTaoDaiHoc(string maDonViDaoTaoDaiHoc, CEMS_DHKhoaHocContext db = null)
        {
            try
            {
                if (db == null)
                    using (var db2 = CEMS_DHKhoaHocContext.GetContext())
                        return GetListGiangVienDaoTaoDaiHoc(maDonViDaoTaoDaiHoc, db2);
                else
                {
                    return db.GiangVienDaoTaoDaiHocDbSet
                        .Where(e => e.MaDonVi == maDonViDaoTaoDaiHoc)
                        .OrderBy(e => e.Ten)
                        .ThenBy(e => e.HoDem).ToList();
                }
            }
            catch (Exception exc)
            {
                throw new Exception("Không thể lấy dữ liệu giảng viên từ cơ sở dữ liệu đào tạo đại học", exc);
            }
        }
    }
}
